.TH cachestat 8  "2016-01-30" "USER COMMANDS"
.SH NAME
cachestat \- Statistics for linux page cache hit/miss ratios. Uses Linux eBPF/bcc.
.SH SYNOPSIS
.B cachestat
[-T] [interval [count]]
.SH DESCRIPTION
This traces four kernel functions and prints per-second summaries. This can
be useful for general workload characterization, and looking for patterns
in operation usage over time.

This works by tracing kernel page cache functions using dynamic tracing, and will
need updating to match any changes to these functions. Edit the script to
customize which functions are traced.

Since this uses BPF, only the root user can use this tool.
.SH REQUIREMENTS
CONFIG_BPF and bcc.
.SH EXAMPLES
.TP
Print summaries every second:
#
.B cachestat
.TP
Print summaries every second with timestamp:
#
.B cachestat -T
.TP
Print output every five seconds, three times:
#
.B cachestat 5 3
.TP
Print output with timestamp every five seconds, three times:
#
.B cachestat -T 5 3
.SH FIELDS
.TP
TIME
Timestamp.
.TP
HITS
Number of page cache hits.
.TP
MISSES
Number of page cache misses.
.TP
DIRTIES
Number of dirty pages added to the page cache.
.TP
HITRATIO
The hit ratio as a percentage.
.TP
READ_HIT%
Read hit percent of page cache usage.
.TP
WRITE_HIT%
Write hit percent of page cache usage.
.TP
BUFFERS_MB
Buffers size taken from /proc/meminfo.
.TP
CACHED_MB
Cached amount of data in current page cache taken from /proc/meminfo.
.SH OVERHEAD
This traces various kernel page cache functions and maintains in-kernel counts, which
are asynchronously copied to user-space. While the rate of operations can
be very high (>1G/sec) we can have up to 34% overhead, this is still a relatively efficient way to trace 
these events, and so the overhead is expected to be small for normal workloads.
Measure in a test environment.
.SH SOURCE
This is from bcc.
.IP
https://github.com/iovisor/bcc
.PP
Also look in the bcc distribution for a companion _examples.txt file containing
example usage, output, and commentary for this tool.
.SH OS
Linux
.SH STABILITY
Unstable - in development.
.SH AUTHOR
Allan McAleavy
.SH SEE ALSO
https://github.com/brendangregg/perf-tools/blob/master/fs/cachestat
